import 'colors'

const DMSD = 24 * 60 * 60 * 1000

export function uuid() {
  const s: any[] = []
  const hexDigits = '0123456789abcdef'
  for(let i = 0; i < 36; i++) {
    s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1)
  }
  s[14] = '4' // bits 12-15 of the time_hi_and_version field to 0010
  s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1) // bits 6-7 of the clock_seq_hi_and_reserved to 01
  s[8] = s[13] = s[18] = s[23] = '-'

  const uuid = s.join('')
  return uuid
}

export function DMS(d: number) {
  return d * DMSD
}

export function getDate() {
  return new Date().toLocaleString()
}

export function klog(text: string, obj: Object, bool?: boolean) {
  let str = (text + ': ').green
  if(bool) {
    str += `[${ module.exports.getDate() }]`.cyan
  }
  for(const k in obj) {
    // @ts-ignore
    str += '\n' + (k + ': ').brightYellow + obj[k]
  }
  console.log(str + '\n')
}

export function awaitTime(time: number): Promise<void> {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve()
    }, time)
  })
}
